Systems and methods of processing impulses including bullet pulses and/or muzzle pulses in association with time domain representations

ABSTRACT

Systems and method are disclosed for processing signals. In one exemplary implementation, a method may include transforming initial bullet data associated with one or more sensors into a set of discrete pulses, dividing the discrete pulses into pulse subsets, generating, for the subsets, time domain representations of the pulses, wherein the time domain representations include waveforms having pulse features, and processing the time domain representations to determine alignment between one or more of pulse features, pulses, pairs of channels, and/or pairs of sensors. One or more further implementations may include determining identity of pulses in association with a matching process performed as a function of the alignment, as well as, optionally, other pulse processing features/functionality.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit and priority of U.S. provisionalapplication No. 60/968,888, filed Aug. 30, 2007, which is incorporatedherein by reference in entirety.

BACKGROUND

1. Field

The present invention relates to processing impulses using time domainrepresentations, and, more particularly, to systems and methods ofprocessing acoustic impulses such as bullet pulses and/or muzzle pulsesin association with time domain representations.

2. Description of Related Information

Impulse processing, such as that associated with acoustic gunshotlocation systems, typically detects the impulsive sounds generated bythe passing of a supersonic projectile and/or those sounds generated bythe muzzle blast of the gun. The relative times of arrival of thesepulses are used to compute the location a variety of algorithmswell-known to those skilled in the art. If the microphone position andarrival time of each pulse are accurately measured on several sensorsand the correct set of pulses is picked for location, highly accuratelocation results can be obtained. However if incorrect pulses areselected and passed to the location algorithms (for example, trying tolocating on three direct pulse and one echo pulse, or four pulses fromthe first shot in a three-shot incident and one pulse from the secondshot), wildly inaccurate results are often obtained. Thus it is of vitalimportance to associate each pulse with a specific shot and use only thepulses generated by a specific shot in the process of locating wherethat shot was fired.

A particularly challenging case is that where multiple rounds are firedfrom a supersonic assault rifle, such as an AK-47 or M-16. Thesefirearms are capable of firing a great number of high-velocity roundseach second. Because the bullets significantly exceed the speed ofsound, they generate a supersonic shock wave as they travel, with theresult that a sensor placed near the path of the projectile will pick upat least two pulses (i.e., one bullet pulse, followed later by a slower“sonic” muzzle pulse) for each shot fired.

While the muzzle pulse travels at a constant velocity (the speed ofsound) from the shooter to the sensor, the bullet pulse follows atime-minimizing path that depends on the velocity of the projectile andthe aim angle of the shooter with respect to the sensor. The timespacing between bullet and muzzle pulses can vary between 0 (when theshooter is firing perpendicular to the sensor) and the shooter-sensorspacing divided by the difference between the projectile velocity andthe speed of sound (when the shooter is firing directly at the sensor.)Since the aim angle is different for each sensor in the array, thebullet-muzzle pulse spacing also differs on each sensor.

Selection of the correct pulse may be further complicated by thepresence of spurious pulses from reverberation and echoes that arefrequently found following both bullet and muzzle pulses. Finally, thedirect path bullet or muzzle pulse may be absent from the acousticsignal entirely. For these reasons, inter alia, features andfunctionality consistent with determining the time offsets of eachchannel and thus determining which pulse are associated with each shotare significantly innovative in systems and methods that seek toaccurately locate acoustic gunshots.

While there is no constant spacing between bullet and muzzle pulses froma given shot, the spacing between muzzle pulses is invariant whenshooter and sensor are stationary. Further, the time difference on eachchannel is the same as the time difference between trigger pulls. (Thespacing is slightly increased or decreased when shooter or sensor are inrelative motion.) Similarly, the spacing between bullet pulses isinvariant when shooter and sensor are stationary and the aim point ofthe shooter is fixed.

Even with automatic weapons, there are usually slight differences in thetime between each shot. This is caused by the variable timing of thetrigger pulls by the shooter or, in fully automatic mode, byself-heating and reduction in cleanliness of the weapon. The spacingbetween shots thus forms a fingerprint that can be used to align timedomain signatures from different sensors when two or more shots arefired.

A standard technique for aligning two time-domain signals is to taketheir cross-correlation. The position for which the cross-correlation ismaximized is the point of maximum similarity between the two signals.This is an effective technique when the microphones are close together(e.g., less than 10 ft) because the audio signals heard by themicrophones are fairly similar. As such, this technique is frequentlyused to determine the relative times of arrival, and thus the azimuth ofarrival, from sensors comprised of arrays of microphones.

Direct cross-correlation of the audio signals has many drawbacks anddisadvantages, however, when the microphones are far apart as is thecase in many practical gunshot location systems. These disadvantages mayinclude, for example:

-   -   1. The time-domain signals from distributed sensors must be        delivered to a common computational platform for        cross-correlation. Because of the size of the audio signals,        this is expensive in terms of communication bandwidth.    -   2. Signals from the same weapon discharge may sound very        different on different sensors. For example, one sensor might        detect a gunshot through the a copse of trees while another gets        a direct signal across a field. Such disparate signals,        collected at a wide variety of distances to the shooter,        frequently do not cross-correlate well.    -   3. Because bullet-muzzle spacing varies on each sensor depending        on its position relative to the shooter and the shooter's aim        point, direct cross-correlation of audio signals involving        bullet and muzzle pulses will always yield poor results.

In sum, there is a need for solutions that may adequately processacoustic signals and overcome such drawbacks, for example, systems andmethods that require less communication bandwidth, less processingpower, and/or perform better than those using existingprocessing/correlation techniques.

SUMMARY

Systems and methods consistent with the innovations herein are directedto processing acoustic impulses.

In some exemplary implementations, there are provided systems andmethods of processing gunshot information. Moreover, one exemplarymethod may include transforming initial bullet data associated with oneor more sensors into a set of discrete pulses, dividing the discretepulses into pulse subsets, generating, for the subsets, time domainrepresentations of the pulses, wherein the time domain representationsinclude waveforms having pulse features, and processing the time domainrepresentations to determine alignment between one or more of pulsefeatures, pulses, pairs of channels, and/or pairs of sensors. One ormore further implementations may include determining identity of pulsesin association with a matching process performed as a function of thealignment, as well as, optionally, other pulse processingfeatures/functionality.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the invention, as described. Further featuresand/or variations may be provided in addition to those set forth herein.For example, the present invention may be directed to variouscombinations and subcombinations of the disclosed features and/orcombinations and subcombinations of several further features disclosedbelow in the detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which constitute a part of thisspecification, illustrate various embodiments and aspects of the presentinvention and, together with the description, explain the principles ofthe invention. In the drawings:

FIG. 1 is a diagram of an exemplary signal processingsystem/environment, consistent with certain aspects related to theinnovations herein.

FIGS. 2A-2B are diagrams of exemplary sensor/processing components,consistent with certain aspects related to the innovations herein.

FIGS. 3A-3C are diagrams illustrating exemplary waveforms, consistentwith certain aspects related to the innovations herein.

FIGS. 4A-4D are flow diagrams illustrating various exemplary signalprocessing functionalities, consistent with certain aspects related tothe innovations herein.

FIG. 5 is a diagram illustrating exemplary post-alignment synthetic timedomain representations of bullet pulses (top graphs) and muzzle pulses(bottom graphs) from five sensors, consistent with certain aspectsrelated to the innovations herein.

FIGS. 6-13 are a series of one or more exemplary signal processingsequence(s), as set forth in more detail below, consistent with certainaspects related to the innovations herein.

DETAILED DESCRIPTION

Reference will now be made in detail to the invention, examples of whichare illustrated in the accompanying drawings. The implementations setforth in the following description do not represent all implementationsconsistent with the claimed invention. Instead, they are merely examplesconsistent with certain aspects related to the invention. Whereverpossible, the same reference numbers will be used throughout thedrawings to refer to the same or like parts.

As set forth in the drawings, a representative gunshot detection system100 is shown in one exemplary environment in FIG. 1. In such exemplaryimplementations, a plurality of sensors 102-106 may be dispersed over amonitored area. For example, each sensor may be placed such that it hasa relatively unobstructed acoustic view around its immediate area. Byway of example and not limitation, some suitable sites (e.g., for morestationary sensors) may include: placed atop a building; placed atoputility or light poles; on towers, etc. Sensors may also be mounted onvehicles, or on individual persons such as soldiers to enable monitoringaround these vehicles or persons. Typically sensors 102-106 communicatethrough a communications network 108 with a centralized processor 110wherein information concerning acoustic events is processed to providedetails of the event, such as the source location of a gunshot, time ofthe gunshot, the number of detected gunshots, the type of event, and thelike. It should be noted that sensors 102-106 may be any combination ofwired or wireless sensors, that communications paths 112-116 may carryeither analog or digital information, and that network 108 may compriseany combination of known networks and/or sub-networks, such as, by wayof example and not limitation: wired or wireless networks,telephony-based networks; the internet; public and/or private computernetworks, dedicated wires routed to the sensor array, etc., among manyothers.

As will be appreciated by those skilled in the art, informationregarding detected acoustic events may be transmitted to processingcomponents of interest such as those associated with police dispatch,military personnel, etc., and/or directly to appropriate individuals, asthrough network 118 to display devices 120 or a computer console. Whenexemplary weapon 122 is fired, the various impulses described belowreach sensors 102-106 at different times based on the distance of eachsensor from the shooter and other facts such as the speed of sound.Whether the acoustic information is processed at the sensor, or atcomputer 110, pulse information may be determined for each sensor andthe differences between the various information are processed todetermine a location of the source of the gunshot. In response to thegunshot, information may be provided at component 120.

Several exemplary sensors, described here for purpose of illustrationnot limitation, may be utilized consistent with the innovations herein.Turning to FIG. 2A, for example, a wired sensor 208 may includes one ormore microphones 210, one or more signal processing components 212, aconnectivity component 214, e.g., to interface to/with a communicationnetwork 214, and a control component 216 that may handle variousprocessing features such as administrative functionality. Optionally,sensor 208 may include other functionality such as, by way of exampleand not limitation temperature sensing, gain control, connectivitymonitoring, etc. In such exemplary systems employing at least one wiredsensor 208, audio information may be transmitted via communicationnetwork 215 to a central location where the audio information isdigitized and processed regarding gunshot detection, determination ofsource location, etc.

With reference to FIG. 2B, an exemplary implementation of a wirelesssensor 218 includes one or more microphones 220 for receiving acousticinformation, one or more signal processing components 222; a processor224, typically a digital signal processor (“DSP”), as are well known inthe art, optionally, a satellite positioning receiver, e.g. a GPS 226; aRF or other transceiver 228 configured for wireless transmission andreception of signals; and antenna 230. In some exemplaryimplementations, DSP 224 may process the received audio information todetect various gunshot impulses/features and determine characteristicsassociated with the gunshot. Sensor 208 may also include a mass storagedevice 232 for archival of audio data. For purposes of this invention a“mass storage device” is a device for storage of digital information. Byway of example and not limitation mass storage devices include: magneticdisk drives; optical disk drives; CD-ROM drives; DVD drives; flashstorage devices such as memory sticks, CF cards, SD cards, MMX cards,and the like; floppy disk drives; as well as any other file orientedtype storage device.

With existing gunshot detection systems, it is often not possible toprovide reliable information regarding the gunshot, shooter, sourcelocation, etc. with a single sensor (see, e.g., FIG. 3A). As a result,accurate calculation of such information requires computation based onthe outputs of a plurality of sensors. FIG. 3B, for example, illustratesexemplary acoustic waveforms from 5 sensors. FIG. 3C, in turn,illustrates exemplary unaligned time domain representations of theseacoustic waveforms showing actual arrival times of bullet pulses andmuzzle pulses on each of the 5 sensors. Consistent with aspects of theinnovations set forth below, such acoustic waveforms from a plurality ofgunshots and sensors may be processed vis-à-vis alignment therebetweento determine the specific identities of corresponding pulses forpurposes, e.g., of precisely calculating desired information regardingthe gunshot, shooter, source, etc.

According to aspects of the innovations herein, such audio waveforms orstreams may be fully processed by remote sensors, by independentprocessing unit(s), and/or by other disparate/distributed processingcomponents. Further, by means, e.g., of such remote or otherdisparate/distributed processing, the audio streams may be reduced to aset of discrete pulses, each of which may be characterized by one ormore pulse parameters. Exemplary pulse parameters may include arrivaltime, amplitude(s), rise time or other characteristics relating toslope, a time-based feature of the pulse, among other known parameters,as well as, in the case of multiple microphone sensors, characteristicsrelating to angle of arrival. In some implementations, only thisdiscrete representation of each pulse (typically 100 bytes or less perpulse, compared with 88,200 bytes per second of audio) is transmittedback to the subsequent processing component for further analysis.

Consistent with such processing components, including, for example,processors located at a central processing station but not limitedthereto, the pulses from all sensors may be stored or held in a queueuntil the shooter has finishing firing, a timeout occurs, or the systemotherwise initiates subsequent processing. Next, in one exemplaryimplementation, the pulses from each sensor are split into two sets, aset of likely bullet pulses and a set of likely muzzle pulses. Thepulses may be divided into these or other subsets forcomparison/matching by a variety of techniques. For example, the pulsesmay be subdivided on the basis of various pulse characteristics known ormeasured, e.g., by the signal processing components. Here, oneadvantageous pulse characteristic is the median power frequency, i.e.,the frequency f at which half the power of the sample is between 0 and fHz. Here, one advantageous pulse characteristic is the median powerfrequency, i.e., the frequency f at which half the power of the sampleis between 0 and f Hz. As will be appreciated by those skilled in theart, other scalar measurements in the frequency domain could be used tocharacterize the signal, such as the bandwidth of the power spectrum,the fraction of power below a certain frequency. Other advantageouspulse characteristics include the pulse envelope, the angle of arrival,slope, rise time, and/or other time-based characteristics.

One exemplary utilization of such subsets in an overall process is shownin the illustrative implementation of FIG. 4A. Referring to FIG. 4A, oneexemplary method 400 may include transforming initial gunshot dataassociated with one or more sensors into a set of discrete pulses 410,dividing the discrete pulses into pulse subsets 420, generating, for thesubsets, time domain representations of the pulses 430, wherein the timedomain representations include waveforms having pulse features, andprocessing the time domain representations to determine alignmentbetween one or more of pulse features, pulses, pairs of channels, and/orpairs of sensors 440. One or more further implementations may alsoinclude determining the identity between pulses/gunshots in associationwith a matching process performed as a function of the alignment 450. Ofcourse, some embodiments of the herein may not include all of thespecific processing steps set forth in the flowcharts of FIGS. 4A-4D, assystems or methods consistent with the innovations herein may receivesignals upon which portions of the processing have been performed.Similarly, certain steps may readily be distributed in ways to betterfacilitate signal processing, such that implementations that omit stepssuch as these may still be within the ambit of the invention.

Turning to the process of generating time domain representations of thepulses 430, as seen, e.g., in FIG. 4A, implementations consistent withthe innovations herein may include processes such as generatingsynthetic time domain representations and/or utilizing cross-correlationto determine alignment between the pulse representations, among others.Indeed, since complex acoustic waveforms cross-correlate poorly, thesynthetic time domain waveforms set forth herein are particularlyadvantageous in such cross-correlation processing. Further, consistentwith the innovations herein, the bullet pulses and muzzle pulses foreach sensor may be used independently to generate a synthetic timedomain representation of the signal received on the sensor. For example,the synthetic time domain representation can be created at a lowersampling rate (such as 512 samples per second) than the originalwaveform and still yield acceptable resolution in timing offset, andeach pulse can be given an artificial width in the time domain to helpobtain matches under real-world conditions such as moving shooter orsensors or imperfect measurement of sensor locations with GPS devices.

FIG. 4B is an exemplary diagram illustrating processing of the audiothat is performed on a sensor or other device capable of processing anaudio stream. According to aspects of the innovations herein, onstartup, an initialization process (460) may define buffers and memoryrequired for processing. Audio samples may then be continuously acquired(461) at a constant sampling rate, such as 44 kHz, and placed in abuffer. The buffer may be periodically processed to find impulsivesignals (462), impulsive signals being those in which the amplitudeincreases from a low value to high value in a short interval of time.Should an impulsive signal be found (463), the audio is processed fromthe point at which the signal starts to change from low amplitude tohigh amplitude and extending 1 millisecond to 500 milliseconds beyondthat point so as to characterize the pulse. The measurements made duringthis characterization process (464) include but are not limited to: thepeak amplitude of the signal; the time required to reach the peak signallevel; the background noise level before the pulse starts; the powerspectrum of the signal; and the time-domain envelope of the signal. Inorder to reduce the communications bandwidth required, a subset of thesepulse characteristics comprising those required for later processingsteps are extracted from all pulse characteristics (465). Finally, inthis illustrative example, the subset of pulse characteristics aretransmitted (466) to a central processor or collator that processespulses received by all sensors able to detect audio from this gunshotincident.

FIG. 4C is an exemplary diagram illustrating processing of pulse datareceived from one or more sensors detecting gunshot audio (470). Anexemplary feature of the processing is to group together all of thebullet and muzzle pulses as detected by one or more sensors from asingle discharge event. This may be accomplished by buffering pulsesuntil pulses from at least two and preferably more than two shots havebeen detected. A test may then be applied at (472) to determine whethera sufficient number of pulses has been received to commence processing.Exemplary tests, here, may include: wait twice as long as the typicalspacing between shots, and if no more pulses are detected in this time,or if more than a certain number of seconds has elapsed, such as fiveseconds, continue to a subsequent processing step. In such a subsequentprocessing step (473), pulses may first be split into subsets by theoriginating sensor. Next, according to some of the innovations herein,each of those subsets may be further split into subsets (474) likely tohave been generated by noise created by the propagation of a supersonicround (bullet shock wave), and those likely to have been generated bythe noise of the discharge of the weapon (muzzle blast). Note that theempty set can be an allowable subset; i.e., aspects of the innovationsherein may applicable to sensors on which no bullet sounds aredetectable. After such exemplary processing, no subset contains pulsesfrom more than one sensor, and each subset contains only pulses likelyto have originated from the muzzle blast, or pulses likely to haveoriginated from the bullet shock wave, or no pulses. Continuing withthis exemplary implementation, in processing step (475), a synthetictime domain representation is generated from the pulses in each subset.One exemplary generation of a synthetic time domain representation isfurther illustrated in FIG. 4C. Once synthetic time domain signals havebeen generated for all signals, one signal is selected as the masterpattern and the timing offset between the master signal and eachremaining synthetic signal is determined by computing thecross-correlation of the signals pair-wise and finding the location ofthe peak in the output of the cross-correlation function (476).According to such exemplary implementations, the master signal is thatsignal which, when used as the master signal, results in the highestoverall sum of the peak value of the cross-correlation between thatmaster pattern and each other pattern. Finally, the offsets determinedby cross-correlation are applied to the synthetic time domain signal,and pulses are assigned to each shot (477), as follows: each pulse foundin the master signal is assumed to be a unique shot, and each pulsefound at that time (after adjusting for the offset) on other channels isassumed to also result from that shot. In this manner, all of the bulletand muzzle pulses associated with shot 1 are grouped together into onesubset, all of the bullet and muzzle pulses associated with shot 2 aregrouped together into one subset, and so forth. Some pulses may not beassociated with any shot after this process.

FIG. 4D is a diagram that illustrates one exemplary manner of generatinga synthetic time-domain representation of a set of pulses. A set ofbullet or muzzle pulses on a single sensor, comprising a subset of allbullet and muzzle pulses on all sensors, is collected for analysis(480). The duration of the time domain signal may be computed from thedifference between the last and first pulse arrival times (481). Abuffer of this duration plus a small amount of additional time at eachend is created and filled with zeros. To improve processing performance,the buffer can be at a sampling rate significantly below that of theoriginal time domain data, such as 512 samples per second. It may alsobe advantageous to pad the buffer lengths to the nearest power of 2, ascross-correlations can be efficiently computed using fast Fouriertransforms. Further, a second identically-sized buffer may be used tolabel each sample with the pulse to which it belongs, if any. Such asecond buffer may initially be filled with invalid references.

Such an exemplary synthetic time domain representation may then be builtup by inserting a Gaussian curve or other function of the pulse'scharacteristics that is centered on the arrival time of the pulse. Anexemplary construction is to define the amplitude of each Gaussian to bea function (such as linear, square root or logarithm) of the originalpulse amplitude. The associated samples in the labeling buffer arefilled with references or pointers to the original pulse. Consistentwith aspects of the innovations herein, cross-correlation of thesynthetic signals (485) may determine the relative offset of pairs ofchannels or sensors; application of this offset to the labeling bufferallows the pulses that comprise each shot to be read out of the labelingbuffers (486) by collecting all valid pointers at particular offsets.

Further, such process(es) may, most preferably, be conducted by sortingthe pulse subset in reverse chronological order so that earlier pulsesoverwrite later pulses. This favors earlier pulses and acts to suppressechoes. In another advantageous implementation, the pulses are clusteredby time and a weighting factor included for each group of pulses thatfavors the earlier pulses in each cluster. This also has the advantageof suppressing echoes.

An exemplary generic process of creating a synthetic time domainrepresentation may include: determining, from a set of bullet pulses andmuzzle pulses from a plurality of sensors, a value (length) of a minimumtime window for the synthetic time domain representations; generating awaveform as a function of a selected sampling rate and the determinedvalue (length); dividing pulses into first subsets, wherein the firstsubsets are differentiated by each being associated with a sensor;dividing pulses associated with each sensor into second subsets, whereinthe second subsets are differentiated via bullet pulse or muzzle pulsecharacteristic; for pulses associated with a sensor, determining anoffset into the synthetic time domain, and re-characterizing, increation of the synthetic time domain representation, portions of thewaveform at the offset or in a range around the offset.

For example, one exemplary specific synthetic time domain representationmay be achieved by:

-   -   1. Taking a set of bullet pulses and muzzle pulses from all        sensors    -   2. Determining the minimum time window for the synthetic time        domain representations by subtracting the earliest arriving        pulse from the latest arriving pulse and adding a small        additional margin at either side.    -   3. Generating a zero-valued waveform of the selected sampling        rate (such as 512 Hz) and the length determined by step 2.    -   4. Dividing pulses into subsets by sensor.    -   5. Dividing pulses on each sensor into subsets by bullet pulse        or muzzle pulse.    -   6 For each bullet or muzzle pulse on a sensor, determining the        offset into the synthetic waveform from the arrival time of the        pulse, the starting time of the synthetic waveform and the        sampling rate of the synthetic waveform. Replace the zeros in        the waveform with non-zero values at that offset less the        half-width of the match window through the offset plus the        half-width of the match window.    -   7. If there are no bullet pulses or no muzzle pulses on a        sensor, the appropriate synthetic time domain waveform is not        generated. However, because bullet and muzzle pulses are treated        independently, the algorithm will work even when much of the        data are missing; for example, it will correctly align sets of        all bullet pulses or of all muzzle pulses.

In some exemplary implementations, the function used to generate thesynthetic waveform may be a Gaussian (y=e^−((x−mu)/sigma^2/)) with meanmu equal to the arrival time of the pulse and standard deviation sigmaequal to the half-width of the match window. Further, while otherfunctions (such as a binary 0 or 1 function) may be used, Gaussians havemany nice properties such as symmetry about the mean and maximum valueat the mean that make them ideal for this application. The peakamplitude of the function can be any pulse feature that is desirable formatching; in some advantageous implementations, the square root of theamplitude was found to be a good balance between emphasizing nearbysensors over distant sensors without allowing the nearest sensor tooverwhelm the rest.

In further exemplary implementations, after generation of the synthetictime domain representations, the standard mathematical technique ofcross-correlation may be used to determine the optimal alignment betweenpairs of channels or sensors. Comparison of an arbitrary number ofchannels or sensors can be performed by comparing each channel in turnwith a reference channel. In order to select the best reference channel,each channel can be considered as the reference channel in turn.Although the number of cross-correlations in the preferred embodiment issignificant (as many as n^² are used), each cross-correlation is veryfast due to the great reduction in sampling rate (from 44 kHz to 512 Hz)allowed by the use of synthetic time domain representations of the audiowaveform.

Once the optimal offsets have been determined, the identity of eachpulse matched by the cross-correlation can be readily determined byapplying that offset to a parallel data structure of the same size asthe synthetic time domain waveform that tracks which pulse (if any) wasresponsible for each sample in the waveform.

Since each sample can belong to at most one pulse, echoes are diminishedby building the synthetic time domain waveform in reverse-time order sothat the earliest pulses overwrite later pulses. In otherimplementations of the innovations herein, echoes are further diminishedby applying a clustering algorithm to the arrival times of bullet ormuzzle pulses on a sensor, with a clustering length parameter that isless than the spacing between shots, preferably around 1/e* the spacingbetween shots, and the pulses within each cluster sorted by arrival timeand additionally weighted by a diminishing factor with increasingarrival time.

Indeed, turning to FIG. 5, excellent alignment of pulses for each ofthree shots is obtained by converting bullet and muzzle pulses intoseparate synthetic time domain representations and finding the maximumin the cross-correlation.

With regard to generating synthetic time domain representations, oneexemplary method may weigh each synthetic arrival time according to afunction of the pulse amplitude, such as weight proportional theamplitude, proportional to the log of the amplitude or proportional tothe square root of the amplitude. Other exemplary methods mayde-emphasizes pulses caused by echoes and reverberation by: (a)performing cluster analysis in the time domain using a clusteringparameter that is smaller than the time between shots to obtain thepulses generated by each shot, (b) sorting the pulses in each cluster inorder of increasing time to obtain the relative ordering of pulses ineach cluster, and/or (c) applying decreasing weights, such as {1, V2, ⅓,% . . . } to each pulse in turn so that later pulses in each cluster arede-emphasized over earlier pulses. Still another method mayde-emphasizes pulses caused by echoes and reverberation by generatingthe signal in reverse-time order, so that earlier pulse representationsoverwrite later ones.

Further, an advantageous exemplary method for aligning two or morebullet pulses and/or two or more muzzle pulses on multiple channels orsensors by computing the cross-correlation of a synthetic time domainrepresentation of the bullet or muzzle pulses on one sensor with areference synthetic time domain representation constructed from bulletor muzzle pulses on another channel or sensor. Moreover, one of thesynthetic time domain signals may be stretched or shrunk in the timedomain in order to account for the effects of a moving shooter, movingsensor, or moving aim point.

Additionally, exemplary methods for collecting the bullet and/or muzzlepulses associated with each shot may include generating a look-up tableof pointers to pulse records, or null pointers when no record crisis,that parallels the structure of the synthetic lime domainrepresentations and locating pulses associated with each pulse on thereference channel by adding the per-channel offsets determined from themaximum value of the cross-correlation of the synthetic time domainrepresentation to the offsets of each pulse in the reference channel andreturning all records for which the pulse pointer is valid. Further,exemplary processing may include scoring the number of matches that isbased on the number of pulses and channels so that pulses that arcweakly or poorly matched arc discarded. A further exemplary method forvalidating the associated pulses on each shot may include computing atrial location from those pulses and checking that the self-consistenterror (e.g., predicted differences in time of arrival vs. measureddifferences in time of arrival, etc.) is less or equal to a certainthreshold, and if a self-consistent solution is not obtained with allsensors, sequentially discarding channels one at a time until aself-consistent solution is obtained or the number of sensors has fallenbelow the minimum number required for a match, in which case the pulsesmay be discarded.

Further, as shown in FIGS. 6-13, an exemplary method of processingpulses to determine their specific/corresponding identities isillustrated. Each figure and its corresponding subject matter are asfollows:

FIG. 6 Audio waveform from a single sensor containing 2 bullet pulsesand 4 muzzle pulses, of which pulses “3” and “6” are echoes off of anearby structure.

FIG. 7 Signal processing apparatus on sensor searches for impulsivesignals, identifies pulses, and builds one discrete data structure foreach pulse found which comprises pulse amplitude, envelopecharacteristics and frequency domain characteristics suitable forclassifying the pulse as a bullet or muzzle pulse.

FIG. 8 After transmission to the central processing server, the pulsesmay be split into subsets of bullet and muzzle pulses. Cluster analysison arrival time is used to break the pulses into subsets that likely arethe result of a single shot.

FIG. 9 A weight may be computed for each pulse. In this case, theformula used is sqrt(amplitude*1/(pulse ordering in cluster))

FIG. 10 A synthetic time domain representation of each sensors bulletand muzzle pulses may be constructed using Gaussian probabilitydistributions from the weights and a pre-determined matching tolerancedesigned to accommodate imperfect data.

FIG. 11 The same process may be repeated with n other channels.

FIG. 12 A reference channel is selected. The ideal reference channel hasevery real pulse and no echo pulses.

FIG. 13 Cross-correlations are performed in a pair-wise manner and thepeak value of each cross-correlation determined. The index of thecross-correlation gives the offset of each channel.

-   -   After alignment of the synthetic time domain representations,        search for pulse on all channels that are aligned with each        pulse in the reference channel. If an inadequate number of        matches is found, discard the result. If an adequate number of        matches is found, associate the pulses and pass them on to the        next stage of the location routines.

As disclosed herein, aspects, embodiments, features and functionalityconsistent with the present innovations may be implemented viacomputer-hardware, software and/or firmware. For example, the systemsand methods disclosed herein may be embodied in various forms including,for example, a data processing component, such as one associable with asensor or a computer that also includes a database, digital electroniccircuitry, firmware, software, or in combinations of them. Further,while some of the disclosed implementations describe signal processingcomponents such as software, systems and methods consistent with thepresent invention may be implemented with any combination of hardware,software and/or firmware. Moreover, the above-noted features and otheraspects and principles of the innovations herein may be implemented invarious environments. Such environments and related applications may bespecially constructed for performing the various processes andoperations according to the invention or they may include ageneral-purpose computer or computing platform selectively activated orreconfigured by code to provide the necessary functionality. Theprocesses disclosed herein are not inherently related to any particularcomputer, sensor, network, architecture, environment, or otherapparatus, and may be implemented by a suitable combination of hardware,software, and/or firmware. For example, various general-purpose machinesmay be used with programs written in accordance with teachings of theinvention, or it may be more convenient to construct a specializedapparatus or system to perform the required methods and techniques.

The systems and methods disclosed herein may be implemented as acomputer program product, i.e., a computer program tangibly embodied inan information carrier, e.g., in a machine readable storage medium orelement or in a propagated signal, for execution by, or to control theoperation of, data processing apparatus, e.g., a programmable processor,a computer, or multiple computers. A computer program can be written inany form of programming language, including compiled or interpretedlanguages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unitsuitable for use in a computing environment. A computer program can bedeployed to be executed on one computer or on multiple computers at onesite or distributed across multiple sites and interconnected by acommunication network.

It is to be understood that the foregoing description is intended toillustrate and not to limit the scope of the invention, which is definedby the scope of the appended claims. Other implementations, embodiments,etc. are within the scope of the following claims.

1. A method of processing gunshot information to determine correlationof acoustic impulses with associated gunshots in a gunshot sequence, themethod comprising: transforming, by one or more computer processingcomponents, initial acoustic gunshot signals detected by one or moresensors into a set of discrete pulse data structures characterized byone or more pulse parameters; dividing the discrete pulses into subsetsincluding a likely bullet pulses subset and a likely muzzle pulsessubset, wherein the discrete pulses are divided into subsets as afunction of one or more pulse characteristics; generating, for thesubsets, time domain representations of the pulses, wherein the timedomain representations include waveforms derived so as to provide asynthesized representation of the acoustic impulses; and performing apattern matching process that includes processing the time domainrepresentations to determine alignment between synthesizedrepresentations of the acoustic impulses; determining which acousticimpulses are associated with which shot in the gunshot sequence via thepattern matching process.
 2. The method of claim 1 wherein the waveformis derived via a Gaussian function of pulse information.
 3. The methodof claim 1 wherein the pulse information includes an absolute arrivaltime of a pulse and a match window range.
 4. The method of claim 1wherein the waveform is derived via a binary 0 or 1 function.
 5. Themethod of claim 1 wherein the processing step comprises a comparison ofchannels or sensors that includes cross-correlation.
 6. The method ofclaim 1 wherein a pulse's identity is determined by applying the pulse'soffset to a data structure corresponding to a waveform that tracks whichpulse was responsible for each sample in the waveform.
 7. The method ofclaim 1 wherein the time domain representation is a synthetic timedomain representation wherein bullet pulses and muzzle pulses areprocessed (handled) independently.
 8. The method of claim 7 whereingeneration of the synthetic time domain representation includes:determining, from a set of bullet pulses and muzzle pulses from aplurality of sensors, a value (length) of a minimum time window for thesynthetic time domain representations; generating a waveform as afunction of a selected sampling rate and the determined value (length);dividing pulses into first subsets, wherein the first subsets aredifferentiated by each being associated with a sensor; dividing pulsesassociated with each sensor into second subsets, wherein the secondsubsets are differentiated via bullet pulse or muzzle pulsecharacteristic; for pulses associated with a sensor: determining anoffset into the synthetic time domain, and re-characterizing, increation of the synthetic time domain representation, portions of thewaveform at the offset or in a range around the offset.
 9. The method ofclaim 1 wherein pulses are assigned an artificial width in the timedomain to facilitate matching under conditions of movement/noise/errorassociated with a gunshot location system.
 10. The method of claim 1wherein the pulse parameters may be one or more parameters selected froman arrival time, an amplitude, a rise time, a slope, a time-basedfeature, and/or an angle of arrival.
 11. The method of claim 1 whereinthe pulse characteristics may include one or more of median powerfrequency, pulse envelope, angle of arrival, slope, and/or time-basedcharacteristics.
 12. The method of claim 1 wherein the time domainrepresentations are generated in reverse-time order.
 13. The method ofclaim 1 wherein the transforming initial gunshot data regarding bulletpulses and/or muzzle pulses associated with one or more sensors into aset of discrete pulses characterized by one or more pulse parameterscomprises replacing each bullet pulse and each muzzle pulse with aGaussian curve centered at a time of arrival for each pulse.
 14. Themethod of claim 1 wherein the one or more pulse parameters comprises anarrival time weighted according to a function of an amplitude of apulse.
 15. The method of claim 1 further comprising de-emphasizing a setof pulses caused by echoes and reverberations.
 16. The method of claim15 wherein de-emphasizing a set of pulses caused by echoes andreverberations comprises: performing cluster analysis in time domainusing a clustering parameter smaller than a time between shots to obtaina set of pulses generated by each shot; sorting the pulses in a clusterin order of increasing time to obtain a relative ordering of pulses inthe cluster; applying a weight to a first in time pulse in the cluster;and applying a lesser weight to a later in time pulse such that thelater in time pulse is de-emphasized.
 17. The method of claim 5 whereinthe processing step further comprises creating a reference set ofdiscrete pulses for each of the one or more sensors; cross-correlatingthe reference set of discrete pulses for each sensor against each thereference set of discrete pulses for each other sensor; and selectingthe reference set of discrete pulses for which a sum of maximum valuesof cross-correlation on each pair is maximized.
 18. The method of claim1 further comprising scoring a number of matches that is based on atotal number of pulses and channels so that a set of weakly matchedpulses are discarded.
 19. The method of claim 1 further comprisingidentifying a gunshot by the matching process; and validating thegunshot by computing a trial location from a set of pulses associatedwith the gunshot by computing a trial location from the set of pulsesassociated with the gunshot and checking that a self-consistent error isless than a threshold.
 20. The method of claim 19 further comprisingdiscarding a first channel set of pulses, computing the trial locationfrom the set of pulses associated with the gunshot minus the firstchannel set of pulses, and checking that a self-consistent error is lessthan a threshold.
 21. One or more computer-readable media containingcomputer-executable instructions for processing gunshot information todetermine correlation of acoustic impulses with associated gunshots in agunshot sequence, the computer-executable instructions includinginstructions for: transforming, by one or more computer processingcomponents, initial acoustic, gunshot signals detected by one or moresensors into a set of discrete pulse data structures characterized byone or more pulse parameters; dividing the discrete pulses into subsetsincluding a likely bullet pulses subset and a likely muzzle pulsessubset, wherein the discrete pulses are divided into subsets as afunction of one or more pulse characteristics; generating, for thesubsets, time domain representations of the pulses, wherein the timedomain representations include waveforms derived so as to provide asynthesized representation of the acoustic impulses; and performing apattern matching process that includes processing the time domainrepresentations to determine alignment between synthesizedrepresentations of the acoustic impulses; determining which acousticimpulses are associated with which shot in the gunshot sequence via thepattern matching process.
 22. One or more computer-readable mediacontaining computer-executable instructions for processing gunshotinformation to determine correlation of acoustic impulses withassociated gunshots in a gunshot sequence, the computer-executableinstructions including instructions for: transforming, by one or morecomputer processing components, initial acoustic gunshot signalsdetected by one or more sensors into a set of discrete pulse datastructures characterized by one or more pulse parameters; transmittingthe transformed discrete pulse data to a central processing component,which performs the steps of: dividing the discrete pulses into a likelymuzzle pulses subset, wherein the discrete pulses are divided as afunction of one or more pulse characteristics; generating, for thesubsets, time domain representations of the pulses, wherein the timedomain representations include waveforms derived so as to provide asynthesized representation of the acoustic impulses; performing apattern matching process that includes processing the time domainrepresentations to determine alignment between synthesizedrepresentations of the acoustic impulses; and determining which acousticimpulses are associated with which shot in the gunshot sequence via thepattern matching process; wherein, as a result of being configured tocorrelate impulses against corresponding gunshots without transmittingthe original acoustic signal, the computer-readable media enablesdetermination of the acoustic impulses that are associated with eachshot of the gunshot sequence via low-bandwidth communications link(s).23. The computer-readable media of claim 21 or claim 22 wherein thewaveform is derived via a Gaussian function of pulse information. 24.The computer-readable media of claim 21 wherein the pulse informationincludes an absolute arrival time of a pulse and a match window range.25. The computer-readable media of claim 21 wherein the waveform isderived via a binary 0 or 1 function.
 26. The computer-readable media ofclaim 21 wherein the processing step comprises a comparison of channelsor sensors that includes cross-correlation.
 27. The computer-readablemedia of claim 21 wherein a pulse's identity is determined by applyingthe pulse's offset to a data structure corresponding to a waveform thattracks which pulse was responsible for each sample in the waveform. 28.The computer-readable media of claim 21 wherein the time domainrepresentation is a synthetic time domain representation wherein bulletpulses and muzzle pulses are processed (handled) independently.
 29. Thecomputer-readable media of claim 21 wherein pulses are assigned anartificial width in the time domain to facilitate matching underconditions of movement/noise/error associated with a gunshot locationsystem.
 30. The computer-readable media of claim 21 wherein the timedomain representations are generated in reverse-time order.
 31. Thecomputer-readable media of claim 21 wherein the transforming initialgunshot data regarding bullet pulses and/or muzzle pulses associatedwith one or more sensors into a set of discrete pulses characterized byone or more pulse parameters comprises replacing each bullet pulse andeach muzzle pulse with a Gaussian curve centered at a time of arrivalfor each pulse.
 32. The computer-readable media of claim 21 wherein theone or more pulse parameters comprises an arrival time weightedaccording to a function of an amplitude of a pulse.
 33. Thecomputer-readable media of claim 21 further comprising de-emphasizing aset of pulses caused by echoes and reverberations.
 34. Thecomputer-readable media of claim 21 further comprising scoring a numberof matches that is based on a total number of pulses and channels sothat a set of weakly matched pulses are discarded.
 35. Thecomputer-readable media of claim 21 further comprising identifying agunshot by the matching process; and validating the gunshot by computinga trial location from a set of pulses associated with the gunshot bycomputing a trial location from the set of pulses associated with thegunshot and checking that a self-consistent error is less than athreshold.
 36. The computer-readable media of claim 22 wherein the pulseinformation includes an absolute arrival time of a pulse and a matchwindow range.
 37. The computer-readable media of claim 22 wherein thewaveform is derived via a binary 0 or 1 function.
 38. Thecomputer-readable media of claim 22 wherein the processing stepcomprises a comparison of channels or sensors that includescross-correlation.
 39. The computer-readable media of claim 22 wherein apulse's identity is determined by applying the pulse's offset to a datastructure corresponding to a waveform that tracks which pulse wasresponsible for each sample in the waveform.
 40. The computer-readablemedia of claim 22 wherein the time domain representation is a synthetictime domain representation wherein bullet pulses and muzzle pulses areprocessed (handled) independently.
 41. The computer-readable media ofclaim 22 wherein pulses are assigned an artificial width in the timedomain to facilitate matching under conditions of movement/noise/errorassociated with a gunshot location system.
 42. The computer-readablemedia of claim 22 wherein the time domain representations are generatedin reverse-time order.
 43. The computer-readable media of claim 22wherein the transforming initial gunshot data regarding bullet pulsesand/or muzzle pulses associated with one or more sensors into a set ofdiscrete pulses characterized by one or more pulse parameters comprisesreplacing each bullet pulse and each muzzle pulse with a Gaussian curvecentered at a time of arrival for each pulse.
 44. The computer-readablemedia of claim 22 wherein the one or more pulse parameters comprises anarrival time weighted according to a function of an amplitude of apulse.
 45. The computer-readable media of claim 22 further comprisingde-emphasizing a set of pulses caused by echoes and reverberations. 46.The computer-readable media of claim 22 further comprising scoring anumber of matches that is based on a total number of pulses and channelsso that a set of weakly matched pulses are discarded.
 47. Thecomputer-readable media of claim 22 further comprising identifying agunshot by the matching process; and validating the gunshot by computinga trial location from a set of pulses associated with the gunshot bycomputing a trial location from the set of pulses associated with thegunshot and checking that a self-consistent error is less than athreshold.